package com.zenithmind.task.pojo.dto;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 任务日志DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
public class TaskLogDTO {

    /**
     * 日志ID
     */
    private String id;

    /**
     * 任务ID
     */
    @NotBlank(message = "任务ID不能为空")
    private String taskId;

    /**
     * 任务标题
     */
    private String taskTitle;

    /**
     * 操作者ID
     */
    private String operatorId;

    /**
     * 操作者名称
     */
    private String operatorName;

    /**
     * 日志类型：1-操作日志，2-工时日志，3-系统日志
     */
    @NotNull(message = "日志类型不能为空")
    private Integer logType;

    /**
     * 操作类型：1-创建，2-状态变更，3-分配任务，4-进度更新，5-记录工时，6-添加评论，7-上传附件，8-删除
     */
    private Integer operationType;

    /**
     * 日志内容
     */
    @NotBlank(message = "日志内容不能为空")
    private String logContent;

    /**
     * 操作前的值
     */
    private String oldValue;

    /**
     * 操作后的值
     */
    private String newValue;

    /**
     * 操作时间
     */
    private LocalDateTime operationTime;

    /**
     * IP地址
     */
    private String ipAddress;

    /**
     * 用户代理
     */
    private String userAgent;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;
}
